@@ -66,6 +66,10 @@ class Agent < ActiveRecord::Base |
||
| 66 | 66 |
where(:type => type) |
| 67 | 67 |
} |
| 68 | 68 |
|
| 69 |
+ def short_type |
|
| 70 |
+ type.demodulize |
|
| 71 |
+ end |
|
| 72 |
+ |
|
| 69 | 73 |
def check |
| 70 | 74 |
# Implement me in your subclass of Agent. |
| 71 | 75 |
end |
@@ -104,11 +104,12 @@ module Agents |
||
| 104 | 104 |
|
| 105 | 105 |
def receive(incoming_events) |
| 106 | 106 |
incoming_events.each do |event| |
| 107 |
+ agent = Agent.find(event.agent_id) |
|
| 107 | 108 |
payload = perform_matching(event.payload) |
| 108 | 109 |
opts = interpolated(payload) |
| 109 | 110 |
formatted_event = opts['mode'].to_s == "merge" ? event.payload.dup : {}
|
| 110 | 111 |
formatted_event.merge! opts['instructions'] |
| 111 |
- formatted_event['agent'] = Agent.find(event.agent_id).type.slice!(8..-1) unless opts['skip_agent'].to_s == "true" |
|
| 112 |
+ formatted_event['agent'] = agent.short_type unless opts['skip_agent'].to_s == "true" |
|
| 112 | 113 |
formatted_event['created_at'] = event.created_at unless opts['skip_created_at'].to_s == "true" |
| 113 | 114 |
create_event :payload => formatted_event |
| 114 | 115 |
end |
@@ -132,6 +132,13 @@ describe Agent do |
||
| 132 | 132 |
it_behaves_like HasGuid |
| 133 | 133 |
end |
| 134 | 134 |
|
| 135 |
+ describe ".short_type" do |
|
| 136 |
+ it "returns a short name without 'Agents::'" do |
|
| 137 |
+ Agents::SomethingSource.new.short_type.should == "SomethingSource" |
|
| 138 |
+ Agents::CannotBeScheduled.new.short_type.should == "CannotBeScheduled" |
|
| 139 |
+ end |
|
| 140 |
+ end |
|
| 141 |
+ |
|
| 135 | 142 |
describe ".default_schedule" do |
| 136 | 143 |
it "stores the default on the class" do |
| 137 | 144 |
Agents::SomethingSource.default_schedule.should == "2pm" |